package cn.gz.coolshark.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@RestController
public class UploadController {
    @RequestMapping("/upload")  //在SpringMVC框架中，使用MultipartFile类型接收图片
    public String upload(MultipartFile picFile) throws IOException {
        String filename = picFile.getOriginalFilename();//获取文件的原始名称
        //substring(index)从指定的下标开始截取，直到末尾    //lastIndexOf(str)从后往前找最后一个str
        String suffix = filename.substring(filename.lastIndexOf("."));//获取文件的后缀
        //使用UUID生成文件的唯一名称  UUID.randomUUID()获得一个全世界唯一的字符串
        filename  = UUID.randomUUID()+suffix;
        //System.out.println(filename);
        //准备文件上传的路径
        String dirPath = "d:/files";
        //准备日期相关的路径   yyyy：年 MM：月  dd：日
        SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
        String datePath = sdf.format(new Date());//对日期按照指定格式进行格式化

        File dirFile = new File(dirPath+datePath);//创建File对象指向“D:files/yyyy/MM/dd”
        if(!dirFile.exists()){//如果“D:files/yyyy/MM/dd”不存在，则创建
            dirFile.mkdirs();
        }
        //上传文件，把接收到的文件保存到 “D:files  /yyyy/MM/dd/xxxxx.jpg"
        picFile.transferTo(new File(dirPath+datePath+filename));
        return datePath+filename;
    }

    @RequestMapping("/remove")
    public void remove(String url){
        //System.out.println("url = " + url);
        File file = new File("d:/files" + url);//创建File对象指向图片文件
        file.delete();//删除文件
    }
}
